//
//  LWTabBar.swift
//  Swift-WeiBo
//
//  Created by 刘伟 on 16/7/9.
//  Copyright © 2016年 LWSpro. All rights reserved.
//

import UIKit


class LWTabBar: UITabBar {
    
    //闭包 设置成属性 实现按钮的点击事件
    var clickButtonClosure: (() -> ())?
    
    

    private lazy var addButton: UIButton = {
        
        //创建
        let addButton = UIButton()
        
        //设置图片
        addButton.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        
        //高亮状态
        addButton.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        
        //设置背景图片
        addButton.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
        
        //高亮
        addButton.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
        
        //自动适应图片大小
        addButton.sizeToFit()
        
        //添加点击事件
        addButton.addTarget(self, action: "addButtonAction", forControlEvents: .TouchUpInside)
        
        return addButton
        
    }()
    
    
    //重写父类方法
    override init(frame: CGRect) {
        
        super.init(frame:frame)
        
        //将加号按钮添加到tabbar 中
        addSubview(addButton)
        
    }

    
    //这个方法是有 xib 或 storyboard 的时候会调用
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
    
    //MARK: - 按钮点击事件
    //按钮的点击事件设置成私有方法 但一定要加上动态的获取方法 @objc
    @objc private func addButtonAction() {
        
        
        
        //实现闭包 '?' 如果闭包创建失败 那么就不执行 如果成功就执行
        clickButtonClosure?()
        
        
    }
    
    
    //MARK: - 在tabbar上布局子控件
    override func layoutSubviews() {
        
        super.layoutSubviews()
        
        //加号按钮的位置 设置在中间
        addButton.centerX = width * 0.5
        addButton.centerY = height * 0.5
        
        //每一个按钮的宽度 //不要除以subViews的个数 可以打印一下
//         print(self.subviews.count)
//         print(subviews)
        
        let itemW = width / 5
        
        
        //索引
        var indext = 0
        
        for value in subviews {
            
            if value.isKindOfClass(NSClassFromString("UITabBarButton")!) {
                
                //x 的位置
                value.x = CGFloat(indext) * itemW
                
                value.width = itemW
                
                //因为中间有一个加号按钮 所以当索引为1时 就是第二个按钮 越过加号按钮 索引需要加2
                if indext == 1 {
                    
                    indext++
                    
                }
                
                indext++
                
            }
            
        }
        

        
        
    }
    
    
}
